<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>使用promise封装ajax异步请求</h1>
    <script>

        // 使用promise封装ajax异步请求
        function promiseAjax(url){
            // 实例化Promise并返回
            return new Promise((resolve, reject) => {
                // 实例化XMLHttpRequest
                const xhr = new XMLHttpRequest();
                // 初始化请求信息
                xhr.open("GET",url);
                // 绑定请求状态改变回调函数
                xhr.onreadystatechange = function(){
                    // 判断请求状态为4
                    if (xhr.readyState == 4){
                        if( xhr.status >= 200 && xhr.status < 300){
                            resolve(xhr.responseText);
                        } else {
                            reject("Ajax请求失败!");
                        }
                    }
                }
                xhr.send();
            });
        }

        // 使用
        const p = promiseAjax("http://localhost:3000/test");
        //console.log(p);
        p.then(value => {
            console.log(value);
        }, reason => {
            // console.info(reason); // 错误的输出
            // console.log(reason); // 错误的输出
            // console.warn(reason); // 错误的输出
            console.error(reason); // 错误的输出
        });
    </script>
</body>
</html>